<html>
<head><meta charset="utf-8"><title>opaque pointers · t-compiler/wg-llvm · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/index.html">t-compiler/wg-llvm</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/topic/opaque.20pointers.html">opaque pointers</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="247967117"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187780-t-compiler/wg-llvm/topic/opaque%20pointers/near/247967117" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/topic/opaque.20pointers.html#247967117">(Aug 02 2021 at 20:27)</a>:</h4>
<p>I saw <a href="https://github.com/rust-lang/rust/issues/86873">#86873</a> for opaque pointer support -- is there any other work in progress?</p>



<a name="247967145"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187780-t-compiler/wg-llvm/topic/opaque%20pointers/near/247967145" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/topic/opaque.20pointers.html#247967145">(Aug 02 2021 at 20:27)</a>:</h4>
<p>I was thinking of tackling <code>call</code>/<code>invoke</code> myself</p>



<a name="247971475"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187780-t-compiler/wg-llvm/topic/opaque%20pointers/near/247971475" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nikita Popov <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/topic/opaque.20pointers.html#247971475">(Aug 02 2021 at 21:05)</a>:</h4>
<p>There's <a href="https://github.com/rust-lang/rust/pull/87695">https://github.com/rust-lang/rust/pull/87695</a> for GEPs.</p>



<a name="247973947"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187780-t-compiler/wg-llvm/topic/opaque%20pointers/near/247973947" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/topic/opaque.20pointers.html#247973947">(Aug 02 2021 at 21:29)</a>:</h4>
<p>great! after GEP and calls, is anything left?</p>



<a name="247975005"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187780-t-compiler/wg-llvm/topic/opaque%20pointers/near/247975005" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nikita Popov <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/topic/opaque.20pointers.html#247975005">(Aug 02 2021 at 21:40)</a>:</h4>
<p>There's also a couple of explicit <code>element_type()</code> calls, but basically that should be it.</p>



<a name="248288484"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187780-t-compiler/wg-llvm/topic/opaque%20pointers/near/248288484" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/topic/opaque.20pointers.html#248288484">(Aug 03 2021 at 22:23)</a>:</h4>
<p>here's <code>call</code>/<code>invoke</code>: <a href="https://github.com/rust-lang/rust/pull/87743">https://github.com/rust-lang/rust/pull/87743</a></p>



<a name="248517200"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187780-t-compiler/wg-llvm/topic/opaque%20pointers/near/248517200" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/topic/opaque.20pointers.html#248517200">(Aug 05 2021 at 18:33)</a>:</h4>
<p>I just added a check to my PR so <code>element_type</code> only allows arrays and vectors</p>



<a name="248518435"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187780-t-compiler/wg-llvm/topic/opaque%20pointers/near/248518435" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/topic/opaque.20pointers.html#248518435">(Aug 05 2021 at 18:43)</a>:</h4>
<p>once that lands, we might be ready to try <code>ptr</code> with LLVM 13?</p>



<a name="248521336"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187780-t-compiler/wg-llvm/topic/opaque%20pointers/near/248521336" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nikita Popov <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/topic/opaque.20pointers.html#248521336">(Aug 05 2021 at 19:02)</a>:</h4>
<p>We might be ready, but LLVM isn't :)</p>



<a name="248521633"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187780-t-compiler/wg-llvm/topic/opaque%20pointers/near/248521633" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/topic/opaque.20pointers.html#248521633">(Aug 05 2021 at 19:05)</a>:</h4>
<p>heh</p>



<a name="248521680"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187780-t-compiler/wg-llvm/topic/opaque%20pointers/near/248521680" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/topic/opaque.20pointers.html#248521680">(Aug 05 2021 at 19:05)</a>:</h4>
<p>well, we can better kick the tires to help get LLVM ready then</p>



<a name="248522771"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187780-t-compiler/wg-llvm/topic/opaque%20pointers/near/248522771" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/topic/opaque.20pointers.html#248522771">(Aug 05 2021 at 19:15)</a>:</h4>
<p>I'll need to check what the check does but aren't vectors of pointers a thing?</p>



<a name="248522889"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187780-t-compiler/wg-llvm/topic/opaque%20pointers/near/248522889" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nikita Popov <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/topic/opaque.20pointers.html#248522889">(Aug 05 2021 at 19:16)</a>:</h4>
<p>They are, but shouldn't be relevant here? That would be the element type being a pointer, not getting an element type on a pointer.</p>



<a name="248522936"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187780-t-compiler/wg-llvm/topic/opaque%20pointers/near/248522936" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/topic/opaque.20pointers.html#248522936">(Aug 05 2021 at 19:16)</a>:</h4>
<p>I see.</p>



<a name="248524311"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187780-t-compiler/wg-llvm/topic/opaque%20pointers/near/248524311" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nikita Popov <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/topic/opaque.20pointers.html#248524311">(Aug 05 2021 at 19:27)</a>:</h4>
<p><span class="user-mention silent" data-user-id="138448">cuviper</span> <a href="#narrow/stream/187780-t-compiler.2Fwg-llvm/topic/opaque.20pointers/near/248521680">said</a>:</p>
<blockquote>
<p>well, we can better kick the tires to help get LLVM ready then</p>
</blockquote>
<p>At least we'll have a frontend to test with :)</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>